nwn2fandomcom-20200214-history
Setting up a Subversion Workflow with a Module
What it does, etc overview Steps to get it working (This is me recording things as i learn them) To get started i decided to use a hosted solution. I could have set up a server, but this lets me evalutate it and get started. I found this blog that lists various hosted services, many of which offer free and low cost hosting. Because the files are rather large for running a PW i think most are going to either have to host it themselves or use the higher levels of server that involve some fees. I chose to use http://www.assembla.com/ as the provider, after reviewing ones i found on this blog http://blog.taragana.com/index.php/archive/hosted-subversion-services-comprehensive-list-reviews/. It's free for up to 500 megs, and it has some other features such as bug tracking and a wiki. I'm not endorsing it, as i can't really compare them as of yet, it's more of a random choice. I set up the archive using their interface, very easy to do, so i'll not cover that, and i expect it to vary based on what you use. To install the SVN client for windows go to http://tortoisesvn.net/downloads and download the installer. This requires a restart but seems to go pretty easy. Now to get the repository started. I decided to make my modules directory the repository (the one in the player folder). First thing i did was rename the folder and create a new folder with the same name. Setting Up Your SVN Folder It is very important to start with an empty folder as it will sync to match the contents of the repository. I go in the folder, Right Click, and i then select SVN Checkout... from the contextual menu. This is a feature of Tortoise SVN. I enter the Subversion address provided by my hosting service, which is the url of the server. I used an xxxxxxx instead of the real address. This is how every user gets the contents of the repository. Because this is the first time, nothing happens, but after i commit this is how you pull content from the repository. Committing Next i go to the folder, put back the items i want in the repository the first time, and select commit. Whatever is committed is published. Now since i just set it up this is the initial commit. This updates the repository with my files. It is assumed that when you commit that the files are working properly, and all testing has been done to them already. It will ask you for your password the first time. Updating Now whenever i want to get the current version of the files i select SVN update. Other users once they have used the SVN Update... So if another person wants to get started, they select a folder to start with, making sure it is empty just to be safe. ( need to test this ) The right click the folder and select SVN Checkout... which makes this folder a mirror of the SVN repository. They can just use SVN Update to get a fresh copy, and only the changes are transferred. Anything they delete, add, or change is put in the repository if they hit SVN Commit... Now if they make a mistake, or you want to revert some things they have done, or if you want to review their work, subversion allows full control and shows you everything they have done. Even a change to the same file is managed intelligently. But like the manual says a tool like this still requires communication. Integrating with Audolo Note: This assumes that the SVN server is the actual same computer as the host but i imagine this is an option. Most of this is quoting Xaltos and focused on Audolo. 1. Commit changes to the SVN host. 2. On the game server run the update ( via a batch file ) :*Checkout of all files with the following command line- :::svn export -r HEAD SUBVERSIONURL --non-interactive d:\work –force ::Replace SUBVERSIONURL with your subversion url ( xaltos uses file:///D:/tools/subv_Repo/). ::*Now you can build your module and HAK files with packistani.exe. ::::A console program that is part of Tani’s NWN2Packer ::::http://nwvault.ign.com/View.php?view=Nwn2tools.Detail&id=9 ::*Create of Audolo download files ( inc. MD5 calculation + 7z zipping ) :::As a next step must you prepare the download files. :::We prepare an Audolo download with a modified version of the Deploy script from the package. :::This includes zipping the files, calculating MD5 Check sum , coping files to FTP server. :::(You can of cause also use the packistani.exe to create a PWC file.) This results in the following workflow which is very efficient :1. ( on Developer PC) Commit module delta to server with Subversion. :2. ( on Server ) Start of the Deloy Batch. :3. ( all players) Download possible walkmesh delta with Audolo. References Xaltos description of integrating of Audolo http://nwn2forums.bioware.com/forums/viewtopic.html?topic=591431&forum=118&highlight=SubVersion Category:Tutorials